A software engine is a collection of software applications communicating with one another over a network. Distributed computer systems include several software engines operating on different computers. Generally, each software engine includes at least one base system in communication with one or more subsystems. The base system and subsystems are software applications that exchange information with one another, and each may be stored on a different computer at remote locations. Any industry having a distributed computer architecture may benefit from such a system.
Distributed computer systems undergo frequent testing to ensure proper operation of the base system and subsystems. Proper operation of the base system depends on proper reception and interpretation of the signals output by each of the subsystems. In addition, one of the subsystems may output to other subsystems. Therefore, proper operation of one subsystem may depend upon the proper reception and interpretation of signals output by another of the subsystems. During testing, a tester may examine how the base system and other subsystems respond when one of the subsystems fails. However, it takes a great deal of coordination to properly perform the test. In some situations, the tester must cause one or more of the subsystems to fail while trying to monitor the results at the base system and the other subsystems. The difficulty in testing the software engine increases as the complexity of the software engine increases.
Accordingly, a software engine is needed that allows the tester better coordinate the testing of the base system and the subsystems.